- web6047 - (2021/09/10(金) 現在、システム調整中のため、一部の表示がおかしいかもしれません)






CLICK ME

homepage6047 2019年 2月

プログラミングやRPG(作るほう)が好きな人の日記

2019/2/22(金)

水曜日に作った実体配線図を元にして、電子回路を作成しました -[kumitate]

電子回路を作成

水曜日に作った実体配線図(部品と部品を 実際に配線したように描いた回路図)を元にして、実際に電子回路を作って、動かしてみました。

ここでやっていることは「温度とか光の強さなどの「程度」について、一定以上ならオン、そうでないならオフにする」というものです。(一般的に「アナログをデジタルにする」という言われ方をします)

木曜日の夜に材料の部品などを用意しておきました。当日になって用意がないと、ほかの趣味とかに走りそうなので。

先日はやる気がないと言っていましたが、やってみると結構楽しいです!

実体配線図を元に
電子回路を組みました
▲水曜日に作った実体配線図
▲今日作った電子回路


作成した回路の確認

怖いのは、配線を間違えて、プラスとマイナスを直結しているんじゃないか?ということです。そういう場合電源を入れると、回路のどこかが燃えると思います。

そうなる前に作った回路が実体配線図のとおりかどうか確認したほうが良いです。

配線が多いとどうやって確認するのが良いか迷いますが、今回は以下の方法で確認しました。

作った実物を見ながら
配線を描いてみます
▲実体配線図のとおりに部品だけ描く。
▲実物の配線を書き込んで、実体配線図の配線と比べて一致すればOK。


fig.
▲試験の動作チェック

これは、試験の回路組み立て後の動作チェックの内容です。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲独自の動作チェック

そのチェックの一部が、今回作成した回路の動作チェックに使えるので、少し修正しつつ独自に手順を作ります。

左の画像リンクをクリックすると 画像を拡大 します。



余談:

fig.
▲古い携帯電話の充電器

古い携帯電話の充電器は、5Vの直流電源として便利に使えたりします。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲充電器のコネクタ部分を加工

その先はこのように加工してあります。

左の画像リンクをクリックすると 画像を拡大 します。



作成した電子回路に電源を入れる

確認をしても、電源を入れるときは思い切りが必要です。その回路が「問題ない」とだれも保証してくれないので…。

fig.
▲電源入れて大丈夫でした

私は、思い切って「でやっ!」と電源を入れた後はすぐに回路に鼻を近づけてニオイをかぎます。プラスマイナスを直結していれば、焦げ臭くなるはずですから。

でも、今回は大丈夫でした★

左の画像リンクをクリックすると 画像を拡大 します。



自分で作成した動作チェックのとおりにチェックした様子を動画にしました。(1分37秒/2.33MB)

私自身も自分で作った動画なのに 何をやっているのか よくわかんないので、皆さんも見てもらってもわからないかもしれません。

この動画は、こんな波形になるよ、という動きを見てもらいたくて動画作成しましたが、いまいちかも?

実体配線図と動画を並べておきます。



あんまりおもしろくないかもしれませんが…。

(1分37秒/2.33MB)
もともとこれをやりたかった気がします…。

(1分2秒/1.71MB)

動画の中で言っている「回してます」とは
VR1, VR2 がそれぞれ こういう部品で、この + にドライバーを挿して回す
ということです。


見えなかったところが見えてきました

回路の細かい動きの十分な理解はできていませんが、正体不明だった回路図が少し自分のものになった感じがするし、動作チェックも最初は何をやっているのかわからないままにチェックをしていましたが、見えなかったところが見えてきました。

ついでに言うと、回路は「ウィンドウコンパレーター」という、どこからどこまでという範囲指定で電圧を判断してくれるものだと思うんですが、動画の動きを見るとどうも範囲というよりは「一定以上」という動きだけをしているように見えます。VR2を回して "最初"、"真ん中"、"最後" で動きが オフ オン オフ となってくれたらまさしく「ウィンドウコンパレーター」(範囲で判断)だと思うんですが。。実際どうなんでしょうね。

その辺気になって調べました。

fig.
▲トランジスタ技術のサイト

「ウィンドウコンパレーター」についてネット検索しても、あまり情報が出てこなかったので、私が持っている月刊誌「トランジスタ技術」30冊ほどの中から探そうと思いました。

トランジスタ技術のサイトへ行き、「目次データベース」をダウンロード。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲「目次データベース」アプリ

「目次データベース」アプリケーションを起動して、「コンパレータ」を検索。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲ウィンドウコンパレーターの記事

それで「ウィンドウコンパレーター」の記事にたどりつきました。ありがたや。

左の画像リンクをクリックすると 画像を拡大 します。



資格試験の回路図とその記事の回路図を見比べると、まさしく「ウィンドウコンパレーター」のようです。

(資格試験のほうは一部違うもの(VR2など)が付いていますが無視してよさそうです)

(私はこの回路図の意味がわかるかと言ったら、わかりません)

そして、その記事の「基準電圧の求め方」のとおり計算すると…

この3.717という数字が、3.6Vに近いですね。きっとこれで正しいんでしょう。

(資格試験の回路で15kという抵抗は持っていなかったので14.7kにしているし、VR1はだいたい23kまで回している…ということで)

電子機器組み立ての回路の「ウィンドウコンパレーター」の部分が、この下限電圧と上限電圧の範囲内のときにOUTPUTに1を出力し、範囲外の時に0を出力していれば良いわけです。

その確認(実験)をするためには、前述で赤文字で書いた部分の「プラスとマイナスを間違えた」というのを直したほうが良さそうです。オシロスコープで見たときの動きが逆だと実験しづらいですから。。

fig.
▲±逆転を直した

それで、その間違えていたのを直しました。

左の画像リンクをクリックすると 画像を拡大 します。



ウィンドウコンパレーターになっている(実験)

実験に向けて間違えていたのを直して、さらにこの回路のままだとウィンドウコンパレーターの下限電圧を見られないので、さらに直しました。

fig.
▲電圧をもっと下げられるようにした

VR1を0Ωまで下げたとき電圧は2.4Vほどあり、下限電圧の1.282Vを見ることができません。そこで回路を少し変更。

左の画像リンクをクリックすると 画像を拡大 します。



ウィンドウコンパレーター動作の動画:

(34秒/1.14MB)

ちゃんとウィンドウコンパレーターでした。

(プラスマイナス逆転の不具合は、結局よくわかんなかった)


トランジスタ技術の記事のグラフを再現

fig.
▲このグラフを再現しよう

ウィンドウコンパレーターだと確認できたところで、じゃあ、ということで、トランジスタ技術の記事のこのグラフを再現してみようと思いました。

ウィンドウコンパレーターってこうだよ、というグラフ。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲見やすくすると、こう。

記事のグラフが見づらいので見やすくすると左図のようなものです。

青いINPUTが一定範囲になったときだけ黄色のOUTPUTが高い電圧(デジタルの1)になります。



fig.
▲左下の赤い部分がINPUT

回路のINPUT部分(左図左下の赤い部分)に、ファンクションジェネレータで三角波を入力します。(今まではVR2を回すことで「入力の代わり」としていました。実際の試験でもVR2はそういう役割だと思います)

ファンクションジェネレーターは秋月のコレの型番の古い2万5千円くらいだったほうを使っています。その製品はもう売っていないみたいですが…参考までに。

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲こんな結果になってしまった

入力したところ、OUTPUT(黄色いグラフ)が思った通りになりません。なんでだろう?

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲ちゃんと赤文字で書いてくれてる

そういえば…。トランジスタ技術の記事で赤文字で、

「コンパレーターICの出力がオープン・コレクタ(ドレイン)ではなくてTTLまたはCMOSの場合は、二つの出力をANDまたはNANDゲートICでまとめます.」

と書いてあります。これって今の自分のこと?

左の画像リンクをクリックすると 画像を拡大 します。

2020年12月29日追記:

1級/2級電子機器組み立て実技試験問題の「支給材料」のページ(いわゆる部品表)を見ると、当該の IC は、

「IC2, 4 デュアル差動コンパレータ LM393、DIP LM393N相当品」

とあります。この IC のデータシートを WEB 検索して確認しみると、

The outputof eachcomparatorin the LM193is the opencollectorof a grounded-emitterNPNoutputtransistorwhichcan typicallydrawup to 16 mA.

Google翻訳:

LM193の各コンパレータの出力は、接地されたエミッタNPN出力トランジスタのオープンコレクタであり、通常は最大16mAを引き出すことができます。

データシートにこのように書かれている通り、この IC の出力はオープンコレクタなので、上記赤文字部分はこの実験では当てはまらないみたいです。

でも下記では期待した波形が出ているので、ちょっと真相はわかりません。




fig.
▲右側にANDのICを設置

そういうわけでさらに回路を修正して…

左の画像リンクをクリックすると 画像を拡大 します。



fig.
▲再現できました

赤文字が正しかったようで、ちゃんと波形が出ました!

計算結果の上限電圧3.71Vと下限電圧1.28Vも水平線(左図のY1, Y2)で表示しています。

左の画像リンクをクリックすると 画像を拡大 します。



最終版の実体配線図を載せておきます。

上記赤文字の "二つの出力をANDにまとめる” の部分を緑の太い線で示しました。


fig.
▲回路図と実基板との対応

最後に比較回路の回路図と、実際の基板との対応を確認しておきます。

実験した回路が基板のどこに当たるのか、ある程度把握しておいたほうが良いでしょう。

左の画像リンクをクリックすると 画像を拡大 します。





やる気を出すに至ったいくつかの対策(時系列順)

電子機器組み立て1級の資格試験への取り組みについてやる気があまり出なかったんですが、以下のような「やる気」への対策を行いました。

  1. "資格試験へのやる気は出なくてもいいから" と自分に言い聞かせ、とりあえず、そのままにしてあった「組み込み制御」の本と「H8マイコンLAN開発キット」は前々からちょっとやりたかったので、そこから手を付けてみることにした。(そこからやる気につながると考えて)
  2. 手持ちの電子機器組み立ての工具や材料は現在どうなっているのか、部屋をごそごそとやってリストアップした。これが不明な状態のままだとやる気が起きても面倒くさくなってしまうと考えて。
  3. 具体的な練習はまだやる気が出ないので、回路図の理解から入ろうと思った。

今現在、いろいろ手を付けることができています。(やる気が出た)


次回は今回の後段の「単安定マルチバイブレータ回路」という正体不明のものをやろうと思います。


予約注文していた「ソーサリアン コンプリート Windows10対応版」が発売日当日の今日、届きました。

どんなかなぁ~


2019/2/20(水)

電子機器組み立て1級 に取り組む -[kumitate]

国家資格「電子機器組み立て1級」を受験しようと思っています。学科は合格していて、残りは実技だけです。(8月末試験日)

試験で渡される回路図

組み立ての力を認定する資格なので、回路図の動きを知らなくても パーツを所定の場所に取りつけさえすれば 試験に合格することができます。でも、私はあまり組み立て作業に自信がないので、回路図を理解することで「底力」にしようと思いました。

上図は電子機器組み立て1級、2級の回路図で、明るい部分は「比較回路(コンパレータ回路)」と呼ばれています。

とりあえず、この部分を理解しようと思いました。

ちなみに、資格試験のこの回路全体は、「省エネコントローラー」と呼ばれていて、”夜間に人がいれば、照明など家電の電源をオンにする” というものです。


実体配線図 (部品と部品を 実際に配線したように描いた回路図)

上図回路図の明るい部分の回路を、配線に注目した回路図に直してみました。

何をやっているのか、さっぱりわかりませんよね。私も細かいところはわかんないです。

でもおおざっぱに、この回路を説明のために「プログラム」で表すとこういうことです。

if( INPUT > minValue && INPUT < maxValue ) OUTPUT = true; else OUTPUT = false;

センサーから受け取った電圧(上図 INPUT )が指定範囲内なら OUTPUT に高い電圧(デジタルの1)が出て、範囲外なら低い電圧(デジタルの0)が出てくるというものです。(コンパレーター回路の中でも「ウィンドウ・コンパレーター」というものだそうです→

プログラムだとたった1行でできるものを、電子回路で行おうとするとこんなに複雑になるものなんですね。


今週の週末あたり、この回路を実際に組んで、オシロスコープで様子を見てみようと思います。

RPGやJavaScript、イラストは「泥で作った船」ですが、電子機器組み立てへの取り組みは「小柄ながらしっかりしているボート」です。RPGなどは私にとっては大きな夢ですが、それで世の中へ うかつに漕ぎだすと泥が溶けてすぐに転覆します。でも電子機器組み立てなど、本業に関係する資格への取り組みはお金(給料)に結びついているので転覆せず、安定します。いつもそう自分に言って聞かせていますが、なにぶん、契約社員で派遣なので、いつ転覆してもおかしくないです。


2019/2/17(日)

「作業の前は外に出て何かの写真を撮ってくる」、ということで、ホームページの日付の右端にその写真を掲載するようにしました。


2019/2/16(土)

作業の前は外に出て何かの写真を撮ってくる

どうもパソコンの前に座ると一日中外に出ない傾向があってあまりよくないので、続くかわかりませんが作業の前は外に出て何かの写真を撮ってくることにしてみました。大した写真ではありませんので…(言葉通り)。


雲を描くときは、ひとかたまりのありふれた雲しか描きませんが、こういう雲もあるんだよ、と。

私は写真を撮るときはデスクトップの壁紙になるように…と心がけて撮ることが多いです。

「空の青」はアプリのカラーパレットから「これかな?」と思って選ぶのではなく、実際の空から青を取ったほうが良いです。そのためのサンプルとして。
朝7時半、西の空なので暗めです。

 ピンボケ。


実際の空から青を取るとこんなかんじ

実際に青を取った(空の上のほう)
#3b5879
HTMLのCSSの
グラデにすると



それは冬の朝でした。

続くかわかりませんが、

「外に出よう」

―――そう思ったのでした。
実際に青を取った(空の下のほう)
#90bce9

このように実際の資料(写真)から青を取ってくると、それっぽい空になり、見る人の心に届きやすくなります。

みなさんも何か創作をするときは、あてずっぽうで作らず、資料を参考にすると良いでしょう。

(青を取るとき、「1色でいいかな」と思っていたんですが、そうはいかず、上下2色取らないと表現できないことに気づきました)


2019/2/14(木)

このホームページは夜の11時にアクセス不能になり、翌朝6時半に再開されます。

ふと気が付きましたが、この時間の判定は、サーバーコンピューターの中で行っているので、アクセスする人が日本から見た地球の裏側のフランスからアクセスしていると、サーバーは日本にあると思うので、多分時間通りの動作になっていません。

つまり日本で夜の11時にアクセスできなくなるというのは、フランスでも同じ時間ではなく、フランスではよくわかりませんがたぶん昼間の11時にアクセスできなくなるんじゃないかと。サーバーはサーバー(日本)の時刻を見ているのであって、通信相手であるブラウザ(フランス)の時刻を見ているわけではないので…

今度直さないと…。


2019/2/10(日) 3連休2日目

このホームページで、キーボードのSHIFTキーを押しながらHキーを押すと、上に HELP というウィンドウが表示されます。

キーボードのキーで白黒反転カーソルを動かし、Enterキーで項目を選びます。マウスはスクロールのときに限って使います。

(この操作方法は、すばやく参照できるHことを意図しています)

このウィンドウではカテゴリ別に用語の意味を参照できます。

項目は随時追加していくつもりです。


2019/2/9(土) 3連休1日目

最近のこと


2019/2/6(水)

今月の冒頭スクリプト -[svc]


先月はただの画像でしたが、今月は CLICK ME をクリックするとアニメします。

身体のそれぞれのパーツが関節で接続され、細やかなアニメーションになっています。


Excelの作図VBAプログラム

下図は体のパーツの画像です。


mess1

mess2

mess3

りんかく

りんかく2

右かかと

右すね

右つまさき

右もも

右上腕

右下腕

右手

右翼上

右翼下

右翼先

左かかと

左すね

左つまさき

左もも

左上腕

左下腕

左手

左翼上

左翼下

左翼先

帽子





これらのパーツは Excel で作図しました。


Excel 上の図形機能でキャラを作って 描画拡張 タブ>PNG に保存>選択を各PNGに保存 ボタンを押すとパーツごとに PNG画像 にしてくれます。

「描画拡張」というリボンのタブは Excel VBA を使って自作したメニューです。


描画拡張>回転 ボタンを押すと、
関節を軸にして図形が回転する


この図で頭と帽子は別個の図形ですが、データとしてはつながりを持たせているので一緒に回転されるようになっています。

通常の Excel の図形機能にはこの機能はなく、「描画拡張」による機能です。

PNG 画像を出力する際に一緒に JavaScript のための .js ファイルも出力します。Excel でキャラを作り、JavaScript はその画像と .js ファイルのデータを読んでアニメを行います。


JavaScriptのアニメプログラム

アニメは複雑そうに見えますが、実はデータとしては「直立」と「おっと」の2つの「ポーズ」だけであり、その2つのポーズのあいだを補間することで複雑なアニメになっています。(ガンダムのプラモデルに例えて言うと、2つのポーズを作るだけで、2つのポーズをつなげるアニメができ上る、ということです)

ここで言う「補間する」とは、たとえば「直立」でまっすぐ伸びている(180度の)腰から、「おっと」で120度くらい曲がっている腰へと、180度から120度まで少しずつ変更していくということです。



すべての関節(図中のたくさんの赤い丸)で一斉に変更するので複雑なアニメが実現されます。

いつも言っていますが、こうやってみると、イラストというのは、ほんとに単純な図を寄せ集めて、適切な大きさ、適切な角度を作りさえすれば、描けてしまうんだなと思えてしまいますね。ただ、顔だけは複雑で、3D のモデリングでも「顔だけはポリゴン(分割数)が異常に多くなる」と言われています。


ところで、プログラムのなかで一番難しい数学は、座標を回転する sin, cos くらいで、ほかはだいたいは座標を足したり引いたりするような計算だけです。

とはいえ、身体のそれぞれのパーツは親子関係になっていて、親の座標や角度を原点(親のx,yを0,0とし親の角度を0とする)として子の座標と角度を計算する、というような「ローカル座標」の計算を行っています。

そして1つのパーツは複数の子を持つ(枝分かれを複数にできる)とか、画像を出力するExcelの図形のしくみがちょっとやっかいだったりと、いろいろあって、だいぶ苦悶した末、やっと目的のプログラムになったというところです。(先月話した「エレガントなプログラム」の話で言うと、目的は達成されているけど、エレガント(直線)ではなく、まわりくどい・無駄の多い(湾曲した)プログラムになっています)

「長かったな。」と自分のプログラミングの日誌に一言書いたほど長い時間悩みました。


今後、もうちょっとエレガントに改善したいと思っています。


webappsrcの確認

1. %%com.webapp.src:/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



2. <code>
%%com.webapp.src:/webappsrccheck.html%%
</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数

console.log( "文字列" );

}

function Class1() {

//クラス

console.log( "文字列" );

}

Class1.prototype.method1 = function() {

//メソッド

console.log( "文字列" );

}

</script>

</head>

<body onload="onloadx();" style="">

Hello world!<BR>

</body>

</html>



3.
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%
と記述した場合

webapps/src/default.cssのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



4. <code>
%%com.webapp.src:/webappsrccheck2.html,/webappsrccheck.html%%</code>
と記述した場合

このファイルのcodeのスタイル指定が効く
<!DOCTYPE html><!--ESCAPEPROCESS-->

<head>

<script>

function onloadx() {

//一般関数 コメント変更

console.log( "文字列変更" );

行追加

}

function Class1() {

//クラス コメント変更

console.log( "文字列変更" );

行追加

}

Class1.prototype.method1 = function() {

//メソッド コメント変更

console.log( "文字列変更" );

行追加

}

</script>

</head>

<body onload="onloadx();文字列変更" style="">

Hello world!<BR>

HTML追加

</body>

</html>



5. リンクで
src?webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く

6. リンクで
src?webappsrccheck2.html,webappsrccheck.html
と記述した場合

webapps/src/default.cssのスタイル指定が効く
開く